import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

//静态路由配置
void main() => runApp(const MyApp3());

//定义根目录Widget
class MyApp3 extends StatelessWidget {
  const MyApp3({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      localizationsDelegates: const [
        //初始化默认的 Material 组件本地化
        GlobalMaterialLocalizations.delegate,
        //初始化默认的 通用 Widget 组件本地化
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      //当前区域，如果为null则使用系统区域一般用于语言切换
      //传入两个参数，语言代码，国家代码
      //这里配制为中国
      locale: const Locale('zh', 'CN'),
      //定义当前应用程序所支持的语言环境
      supportedLocales: const [
        Locale('en', 'US'), // English 英文
        Locale('zh', 'CN'), // 中文
      ],
      routes: {
        //默认页面
        "/": (BuildContext context) => const Exam212HomePage(),
      },
    );
  }
}


class Exam212HomePage extends StatefulWidget {
  const Exam212HomePage({Key? key}) : super(key: key);

  @override
  State<Exam212HomePage> createState() => _Exam212HomePageState();
}

class _Exam212HomePageState extends State<Exam212HomePage> {
  ///代码清单2-17-1 Text 文本的基本使用
  ///代码路径 lib/code2/code212_Text.dart
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //页面的头部
      appBar: AppBar(title: const Text("标题")),
      //页面的主内容区
      body: const Text(
        "早起的年轻人 for your whole life, it's right there by your side all along.",
        //设置是否自动换行  默认为true 自动换行
        //设置为 false 不会自动换行
        softWrap: true,
        maxLines: 1,
        overflow: TextOverflow.ellipsis, //超出1行后显示省略号
        style: TextStyle(
          fontSize: 25,
          //文字大小
          //设置文字的粗细规则为常规体
          fontWeight: FontWeight.normal,
          //斜体 FontStyle.italic ;斜体 FontStyle.normal 常规
          fontStyle: FontStyle.italic,
          //字符与字符之间的间隔
          letterSpacing: 12.0,
          //单词之间的间隔
          wordSpacing: 20.0,
        ),

      )
      ,
    );
  }

  ///代码清单2-17-2 Text  删除线
  ///代码路径 lib/code2/code212_Text.dart
  Widget buildText() {
    return const Text(
      "早起的年轻人 奋斗青年",
      style: TextStyle(
        fontSize: 16,
        //设置中间删除装饰样式
        decoration: TextDecoration.lineThrough,
        //配置删除线为红色
        decorationColor: Colors.red,
        //双线样式
        decorationStyle: TextDecorationStyle.double,
        //加粗
        decorationThickness: 2,
      ),
    );
  }

  ///代码清单2-17-3 Text 动画样式使用
  ///代码路径 lib/code2/code212_Text.dart
  bool _isSelected = false;
  //构建动画样式组件
  Widget buildAnimatedDefaultTextStyle() {
    //例如文本的颜色发生变化 ，这个颜色变化是通过动画效果来渐变的
    return AnimatedDefaultTextStyle(
      //设置Text中的文本样式
      //每当样式有改变时会以动画的方式过渡切换
      style: _isSelected
          ? const TextStyle( color: Colors.red)
          : const TextStyle(color: Colors.black),
      //动画切换的时间
      duration: const Duration(milliseconds: 200),
      curve: Curves.bounceInOut,//动画执行插值器
      textAlign: TextAlign.start,//文本对齐方式
      softWrap: true, //文本是否应该在软换行符处换行
      //超过文本行数区域的裁剪方式
      overflow: TextOverflow.ellipsis,//设置设置为省略号
      maxLines: 1, //最大显示行数
      //每当样式有修改触发动画时
      //动画执行结束的回调
      onEnd: () {
        print("动画执行结束");
      },
      //文本组件
      child: const Text("Hello, Flutter"),
    );
  }

}

